package com.example.nbshopping.goods;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.nbshopping.R;
import java.util.List;

    /*编写listview和gridview适配器的过程
     * 1.创建一个类,继承与baseAdapter
     * 2.重写4个方法
     * 3.在类当中定义2个成员变量   context和集合
     * 4.创建构造方法将两个成员变量赋值
     * 5.前三个方法按照套路写(固定写法)
     * 6.创建内部类,在内部类当中声明item布局对应控件,并在构造方法当中查找,构造方法要传view
     * 7.
     * */
    public class TypeAdapter extends BaseAdapter{
        Context context;
        List<TypeBean.DataBean> data;
        int clickPos = 0;
        public TypeAdapter(Context context, List<TypeBean.DataBean> data) {
            this.context = context;
            this.data = data;
        }
        //    设置被点击的位置
        public void setClickPos(int clickPos){
            this.clickPos = clickPos;
            notifyDataSetChanged();  //重新绘制页面
        }
        @Override //显示多少行数据,集合的长度
        public int getCount() { return data.size(); }
        @Override//返回指定位置的数据
        public Object getItem(int position) { return data.get(position); }
        @Override //返回指定位置view的id
        public long getItemId(int position) { return position; }
        @Override //返回item_type布局对应的view对象
        public View getView(int position, View convertView, ViewGroup parent) {
            VH vh = null;
            if (convertView == null) {
                convertView = LayoutInflater.from(context).inflate(R.layout.item_type,parent,false);
                vh = new VH(convertView);
                convertView.setTag(vh);
            }else {
                vh = (VH) convertView.getTag();
            }
            TypeBean.DataBean bean = data.get(position);
            vh.tv.setText(bean.getName());
            // 点击背景颜色,文字颜色,竖线的出现和隐藏
            if (position == clickPos) {
                convertView.setBackgroundResource(R.color.divider);
                vh.tv.setTextColor(Color.BLUE);
                vh.line.setVisibility(View.VISIBLE);
            }else {
                convertView.setBackgroundResource(R.color.white);
                vh.tv.setTextColor(Color.BLACK);
                vh.line.setVisibility(View.INVISIBLE);
            }
            return convertView;
        }
        class VH{
            TextView tv,line;
            public VH(View v){
                tv = v.findViewById(R.id.item_type_tv);
                line = v.findViewById(R.id.item_type_line);
            }
        }
    }

